####################### The code has been adapted from https://github.com/dtsip/in-context-learning.git ##################################

1. Install the Requisite Libraries specified in environment.yaml
2. "src/conf/standard.yaml" is used to specify model parameters. ie
model:
    family: gpt2
    subfamily: B
    option: 3
    n_embd: 512
    n_layer: 16
    n_head: 4

Moreover, to run experiments for non-scalar case, use set subfamily to "A". To run experiments with noise stats discarded for scalar measurements, set it to "B". To run experiments with explicit state estimation for scalar measurement, set it to "C". For "A" and "B", option=1 performs experiments using strategy 1 in the paper.  option=3 performs experiments using strategy 2 in the paper.

3. Curriculum for F, Q, R is implemented in "src/Curriculum.py"
4. "src/base.yaml" specified other hyperparameters: for example

inherit: 
    - models/standard.yaml
    - wandb.yaml

model:
    n_dims: 8
    n_positions: 101

training:
    data: gaussian
    task_kwargs: {}
    batch_size: 64
    learning_rate: 0.0001
    save_every_steps: 1000
    keep_every_steps: 50000
    train_steps: 500001
    curriculum:
        dims:
            start: 8
            end: 8
            inc: 1
            interval: 2000

 
5. "src/linear_regression" specifies save directory among other things
6. To train a model, use "python3 src/train.py --config src/conf/linear_regression.yaml"
7. To evaluate a model, use " python3 src/Evaluate_SS.py ..."
Only required argument is "save_dir" which is the directory of the saved model. However, it is crucial to use the correct "exp_option" which ought to be 1 for general experiments with non-scalar measurements, 2 for experiments with scalar measurements with noise statistics discarded for the transformer, and 3 for explicit state estimation experiments. --chunk_size_min, chunk_size_max is used to denote the interval of chunk sizes over which we would like to evaluate MSPD.  chunk_size_max must be greater than 8. Finally set F_option to 1 for strategy 1 and set F_option to 3 for strategy 2.

 